Oracle的DBLink远程关联查表批量查询慢慢的问题 |
您所在的位置:网站首页 › oracle 跨库查询 dblink › Oracle的DBLink远程关联查表批量查询慢慢的问题 |
对于几个本库表关联dblink远程表批量查询慢的问题 select m.cusNo, p.name, t.salary from baseinfo@bigdata p, moneyPay@bigdata t, emp m where p.id = t.id and p.cusNo = m.ssno and m.cusNo in ('A001', 'A002', 'A003');baseinfo p表、moneyPay t 表都是远程表;emp m 是本库表。 如果三个表的数据量少的情况下,效率还算可以。要是三个表的数据量很大,效率就慢了。 解决思路: 不用本库表与远程表做条件关联,先把几个远程表间关联,得出想要的结果集,将其作为临时表,与本库的表再作关联。 select m.cusNo, tt.name, tt.salary from (select p.cusNo, p.name, t.salary from baseinfo@bigdata p, moneyPay@bigdata t where p.id = t.id) tt, emp m where m.ssno = tt.cusNo and m.cusNo in ('A001', 'A002', 'A003');对于这个sql,查询数据量少,效率可能很慢。 因为大部分时间耗费在dblink搬数据上,所以查询3条数据,与查询1万条数据,效率差异上就不大了。 这种方式适合批量跑数。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |